// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

// Generated by Fuzzlyn v1.5 on 2022-02-02 18:45:57
// Run on X86 Windows
// Seed: 2552302029114048182
// Reduced from 26.6 KiB to 0.5 KiB in 00:00:36
// Debug: Outputs -1
// Release: Outputs -2
using System;
using System.Runtime.CompilerServices;
using Xunit;

public interface I1
{
}

public struct S0 : I1
{
    public static bool result;
    public short F5;
    public S0(short f5): this()
    {
        F5 = f5;
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    public void M4(short arg0, I1 arg1)
    {
        result = arg0 == -1;
    }

    public I1 M7()
    {
        ref S0 var0 = ref this;
        var0 = new S0(1);
        return this;
    }
}

public class ForwardSubCallArgInterference
{
    public static IRT s_rt;
    [Fact]
    public static int TestEntryPoint()
    {
        s_rt = new C();
        S0 vr0 = default(S0);
        new S0(0).M4((short)~vr0.F5, vr0.M7());
        return S0.result ? 100 : -1;
    }
}

public interface IRT
{
    void WriteLine<T>(T val);
}

public class C : IRT
{
    public void WriteLine<T>(T val)
    {
        Console.WriteLine(val);
    }
}
